#ifndef __ST7789_H__
#define __ST7789_H__

#include "SWM341.h"


#define SPI_VPIX  360
#define SPI_HPIX  360



#define ST7789_CS_GPIO 	GPIOM
#define ST7789_CS_PIN 	PIN2

#define ST7789_DC_GPIO 	GPIOM
#define ST7789_DC_PIN 	PIN11

#define ST7789_RES_GPIO GPIOD
#define ST7789_RES_PIN 	PIN2

#define ST7789_BLK_GPIO GPIOC
#define ST7789_BLK_PIN 	PIN2

#define ST7789_RES_ON GPIO_SetBit(ST7789_RES_GPIO, ST7789_RES_PIN)
#define ST7789_RES_OFF GPIO_ClrBit(ST7789_RES_GPIO, ST7789_RES_PIN)
#define ST7789_BLK_ON GPIO_SetBit(ST7789_BLK_GPIO, ST7789_BLK_PIN)
#define ST7789_BLK_OFF GPIO_ClrBit(ST7789_BLK_GPIO, ST7789_BLK_PIN)

#define ST7789_CS_ON 	GPIO_SetBit(ST7789_CS_GPIO, ST7789_CS_PIN)
#define ST7789_CS_OFF GPIO_ClrBit(ST7789_CS_GPIO, ST7789_CS_PIN)
#define ST7789_DC_ON 	GPIO_SetBit(ST7789_DC_GPIO, ST7789_DC_PIN)
#define ST7789_DC_OFF GPIO_ClrBit(ST7789_DC_GPIO, ST7789_DC_PIN)


//画笔颜色
#define BLACK 0x0000
#define BLUEGREEN 0x0FFF
#define Color_RED 0xf800

#define Len_Buf 				4096

void st7789_init(void);
void st7789_fill(uint16_t xsta, uint16_t ysta, uint16_t xend, uint16_t yend, uint16_t color);

void FillTest(void);
void ST7789_Clear(uint16_t rgb);
void ST7789_DMA_Clear(uint16_t color);
uint32_t ST7789_Done(void);
void TFT_SPI0_Init(uint16_t WORDSIZE,uint16_t CLK);

void SPI_TFT_Test(void);
void SPI_TFT_Display(uint16_t* data, uint32_t halfword_num);
void st7789_set_addr(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2);


#endif
